Graphs are often used to represent, analyze, or process data. Graphs are used to represent abstract representation of a set of elements, referred to as “nodes.” Nodes are typically related to each other. These relationships are represented as links between the nodes, referred to as “edges.”
Data visualization refers to representing information in a graphical way, so that a user is able to understand the information, analyze the information, and draw conclusions from the information.
A graph may be used to build a model of a data structure. The model may include items of data represented by nodes and edges connecting the nodes. If there is no distinction in the direction of every edge in a graph, the graph is undirected.
If some edge in a graph is directed from one node to another node, the graph is directed and all other edges in the graph are required to have a direction. An undirected graph can be transformed into a directed graph by replacing each edge of the undirected graph with two directed edges between the same nodes that are in opposite directions, i.e. replace each undirected edge, for example, between nodes ‘a’ and ‘b,’ with an edge directed from ‘a’ to ‘b’ and with a second edge directed from ‘b’ to ‘a.’ Such models of data structures may be used for computational purposes, analysis, and optimization.
Some practical applications of graphs include computer networks, statistics, data structures, organizational structures, and studying particles in the natural sciences, among others.
Data structures may have many nodes, for example, hundreds, thousands, or even hundreds of thousands of nodes. Thus, it may be difficult to visualize a graph in a readable way. However, a visualization may be important for decision making and thus it is necessary to provide clear and readable graphs. Some visualization techniques suffer from poor readability as a result of crossing lines or overlapping content due to the size and complexity of the graph. It also may be beneficial for graphs to provide additional functionality so that users can obtain additional detail about the graph structure.